/**
 * AI智能助手服务
 * 提供AI对话、推荐等功能
 */

import http from './api.js'

const aiService = {
  /**
   * 发送消息给AI
   * @param {String} message - 用户消息
   * @param {String} conversationId - 会话ID（可选）
   * @returns {Promise} API响应
   */
  sendMessage: async (message, conversationId = null) => {
    try {
      const response = await http.post('/ai/chat', {
        message: message,
        conversationId: conversationId,
        context: 'food_delivery'  // 业务上下文
      }, { 
        needAuth: true,
        showLoading: false  // 不显示全局loading，在聊天界面自己控制
      })
      return response
    } catch (error) {
      console.error('AI消息发送失败:', error)
      throw error
    }
  },
  
  /**
   * 获取快捷问题列表
   * @returns {Array} 快捷问题数组
   */
  getQuickQuestions: () => {
    return [
      '推荐一些好吃的川菜 🌶️',
      '如何查看我的订单？ 📦',
      '配送需要多长时间？ 🚚',
      '如何申请退款？ 💰',
      '有什么优惠活动吗？ 🎁',
      '怎么参与拼单？ 👥'
    ]
  },
  
  /**
   * 获取欢迎消息
   * @param {String} userName - 用户名（可选）
   * @returns {String} 欢迎消息
   */
  getWelcomeMessage: (userName = '') => {
    const greeting = userName ? `你好，${userName}！` : '你好！'
    return `${greeting}我是AI小助手 🤖\n\n我可以帮你：\n· 推荐美食和商家\n· 解答订单问题\n· 介绍优惠活动\n· 使用指导\n\n有什么可以帮你的吗？😊`
  },
  
  /**
   * 本地存储聊天历史
   * @param {String} conversationId - 会话ID
   * @param {Array} messages - 消息数组
   */
  saveConversation: (conversationId, messages) => {
    try {
      const conversations = uni.getStorageSync('ai_conversations') || {}
      conversations[conversationId] = {
        messages: messages,
        updatedAt: new Date().toISOString()
      }
      uni.setStorageSync('ai_conversations', conversations)
    } catch (error) {
      console.error('保存聊天记录失败:', error)
    }
  },
  
  /**
   * 加载聊天历史
   * @param {String} conversationId - 会话ID
   * @returns {Array} 消息数组
   */
  loadConversation: (conversationId) => {
    try {
      const conversations = uni.getStorageSync('ai_conversations') || {}
      return conversations[conversationId]?.messages || []
    } catch (error) {
      console.error('加载聊天记录失败:', error)
      return []
    }
  },
  
  /**
   * 清空聊天历史
   */
  clearConversations: () => {
    try {
      uni.removeStorageSync('ai_conversations')
    } catch (error) {
      console.error('清空聊天记录失败:', error)
    }
  }
}

export default aiService


